Software Engineering
Final Exam Review
Introduction: 1-9
Dependability and Security: 10-14
Management: 22-25
Advanced 15-21

Answer SEVEN of the NINE questions. 
Use MY question numbers, from the exam sheet, for labelling your answers.

Grading will be based on:
Answering the question that was asked with logical thought
Showing understanding of concepts of Software Engineering
Showing understanding of concepts covered in class
A well written answer in English
In ALL answers, attempt to show DEPTH of understanding of the Software Engineering concepts discussed in this class. The exam is comprehensive, covering the ENTIRE semester.

A NOTE ON TIME AND DEPTH:
You have two hours and 7 questions.  (120/7 is around 17.)
While this is not about who has the LONGEST answer, or who spends the LONGEST time writing, please make sure the DEPTH of your answer is appropriate for someone who intends a career in this field.  If it only takes you 5 minutes to write your answer, it is unlikely you will get a top grade. I expect you to take 20 minutes MINIMUM to answer each question, including thinking about the question, outlining your answer, and writing your answer in sufficient depth to show me you have truly learned the material in this class.

You may prepare a 1 page review sheet, and refer to it during the exam.
Please do NOT look things up in the book, or on the Internet, during the exam period.  
If you have questions, direct them to Tookey, or another VTC faculty member.

Questions to think about:
In what way is Software Engineering different from Programming?
Pick your favorite: Dependable, Reliable, Safety, Security, and Resilience. Now pick your second favorite.  Define both, explain their similarities and differences, and explain how they do (or do not) interact.  
Pick your favorite: Good, Fast, Cheap.  Can we have all three?  Why or why not? In what aspects of this course is an interaction parallel to this found?
What are the trade-offs involved with ‘recycling’ components in software engineering?
How does ‘distributing’ a system affect the Software Engineering design process?
What is a ‘sociotechnical system’ and why are they important?
What complications can arise when you are designing a system for a system of systems?
What is the difference between being a programmer, and being a software engineer?
Identify each of the four activities that must be included in software processes: 
(Hint: software ___; software ___; software ___; software ___)

Compare and contrast the waterfall model to agile development.
What are the same and different about functional and non-functional requirements?
Identify at least four system models, and for each, cite an example of a situation in which it is appropriate.
What is architectural design? (Hint: not about building big buildings)
In a world where so many say there are always more bugs to catch, how can you do testing and releases?
What are the similarities and differences between software maintenance and software evolution?
What is the difference between being a programmer, and being a software engineer?  Remember to show you understanding of Software Engineering in your answer.
Compare and contrast the waterfall model to agile development. What are the advantages and disadvantages of each? Remember to show you understanding of Software Engineering in your answer.
 Identify at least four system models, and for each, cite an example of a situation in which it is appropriate. Remember to show you understanding of Software Engineering in your answer.
In a world where so many say there are always more bugs to catch, how can you do testing and releases? Remember to show you understanding of Software Engineering in your answer.
 In what specific ways has this class helped you prepare for a career in Software Engineering? Remember to show you understanding of Software Engineering in your answer.
In what specific ways has this class NOT helped you prepare for a career in Software Engineering? Remember to show you understanding of Software Engineering in your answer.

Software Engineering:Project
Check In 2
It is almost time for Thanksgiving Break, and most of the semester is now in the rear view mirror.  Take a few minutes, and email me about the current status on your project.
Show your understanding of Software Engineering (as discussed so far this semester) as well as giving me an update on: how your project idea has evolved.
What you have accomplished so far?
How has your project idea changed since you first proposed it?
What your plans for finishing your project?
If you have learned anything about software engineering about doing this project (so far), what have you learned?
If you have benefitted from doing the project in other ways, how has it benefitted you?

.